package com.apobates.jforum.grief.aurl.convertor;

import com.apobates.jforum.grief.aurl.core.AUrlMeta;
import com.apobates.jforum.grief.aurl.spring.StringUtils;

/**
 * AUrlMeta的转换器接口
 * @param <T> 目标类型
 */
@FunctionalInterface
public interface AUrlMetaConvertor<T> {
    /**
     * 转换
     * @param aUrlMeta
     * @return
     * @throws IllegalStateException
     */
    T convert(AUrlMeta aUrlMeta)throws IllegalStateException;

    /**
     * 是否需要追加端口信息
     * @param port
     * @return
     */
    static boolean isAppendPort(String port){
        return StringUtils.hasLength(port) && !port.equals("-1") && !port.equals("80");
    }

    static char _PATH_DELIMITER = '/';
}
